1 package uba.db.sql.interpreter.sentencevalidation;
2
3 import uba.db.sql.language.Sentence;
4 import uba.db.sql.language.TableName;
5 import uba.db.sql.language.VisitorBehavior;
6
7 public class NewTableNameValidation extends SentenceValidationBehavior {
8 public NewTableNameValidation(Sentence sentence, SentenceValidator validator) {
9 super(sentence, validator);
10 }
11
12 public void execute() throws SentenceValidationException {
13 try {
14 sentence.accept(new TableNameValidationVisitor());
15 } catch (TableAlreadyExistsException e) {
16 throw new SentenceValidationException(e);
17 }
18 }
19
20 private class TableNameValidationVisitor extends VisitorBehavior {
21 public void visitTableName(TableName tableName) {
22
23 String tableNameString = tableName.toString();
24 if (validator.isExistantTableName(tableNameString)) {
25 throw new TableAlreadyExistsException(tableNameString);
26 }
27 }
28 }
29 }